5.4.1 ジェネリクス
ジェネリック型は、どのデータ型を使っても構わないことを示すためのもの
def reverse(coll: list[T]) -> list[T]:
T型の要素のリストを受け取り、T型のリストを返す
T型は一致(別々にはならない)
class Graph(Generic[Node, Edge]):
あらゆる要素型のグラフを定義でき、かつそれらの型チェックを成功させられる。
その他の用途:APIのエラー処理の単純化
APIResponse = Union[T, APIErrorResponse]
APIResponse[NutritionInfo](型変数Tに実際の型を代入した)
IMO:型定義の重複を解消する使い方ができる模様